//
//  CQueueList.h
//  CircleQueue
//
//  Created by Xavier on 2023/10/23.
//

#ifndef CQueueList_h
#define CQueueList_h
#include <stdio.h>
#include <stdlib.h>
#endif /* CQueueList_h */

typedef struct
{
    int* arr;
    int front;
    int rear;
    int len;
}CQueue;

//初始化循环队列
CQueue* circularQueueInit(int len);
//判断循环队列是否为空，为空输出-1，非空输出0
int circularQueueIsEmpty(CQueue* cq);
//判断循环队列是否已满，满了输出-1，没满输出0
int circularQueueIsFull(CQueue* cq);
//向循环队列插入一个元素
void circularQueuePush(CQueue* cq, int data);
//向循环队列删除一个元素
void circularQueuePop(CQueue* cq);
//获取队头元素,为空返回-1
int circularQueueFront(CQueue* cq);
//获取队尾元素,为空返回-1
int circularQueueRear(CQueue* cq);
//释放空间
void circularQueueDestroy(CQueue* cq);
//打印队列
void circularPrint(CQueue* cq);
